草庐IT

c++ - QReadWriteLock递归

全部标签

python - 快速递归文件夹删除 - 调用正确的 rmdir

这个问题与python没有直接关系,但我需要在windows下的python32下工作实现。从此answer开始我假设使用shutil.rmtree()在windows下真的很慢(我每天需要删除超过3M的文件,需要超过24小时)所以我想使用subprocess.call()和rmdir,但是由于我的%PATH%系统变量中有cygwin,因此调用了错误的rmdir,我会得到这个:>>>args=['rmdir',r'D:\tmp']>>>subprocess.call(args)cygwinwarning:MS-DOSstylepathdetected:D:\tmpPreferredPO

c - InitializeCriticalSectionAndSpinCount 最优 SpinCount(用户态)

我不太了解InitializeCriticalSectionAndSpinCount的文档:http://msdn.microsoft.com/en-us/library/windows/desktop/ms683476(v=vs.85).aspx它说“您可以通过选择较小的旋转计数来显着提高性能......”但是,由于等待微调器比等待对象更快,因此让SpinCount尽可能高不是很有意义吗?我错过了什么?谢谢。(我在多线程应用程序使用的CDLL中使用它)这是临界区的代码,被大量线程不断调用:intg_slots[256]={0};...slot=256;EnterCriticalSec

c - 在c和windows中获取进程组的用户时间

在Unix中我可以调用times()不仅可以获取当前进程的运行时间,还可以获取整个进程组的运行时间。在Windows中,我可以调用GetProcessTimes()获取当前进程的时间。但是,文档似乎表明这不会返回整个进程组的运行时间。那么有什么方法可以获取进程的运行时间,以及它在Windows中的所有子进程? 最佳答案 正如Harry所说,这不能做到,至少不能直接做到,因为Windows不像Unix那样跟踪进程之间的父/子关系。但是,您可以通过为进程创建共享内存来解决这个问题,并让它们都在运行时更新该位置。在这里您可以找到更多信息d

c - 如何在C中设置用户输入字符的时间限制?

首先,抱歉我的英语不好。我正在使用windows.h中包含的GetTickCount()函数和conio.h中包含的getch()。我真正想要的是给用户输入字符的时间限制。如果时间限制失效,程序继续执行,跳过等待用户输入字符。charch='A';DWORDstart_time,check_time;start_time=GetTickCount();check_time=start+500;//GetTickCountreturnstimeinmiliseconds,soIadd500towaitinputforhalfasecond.while(check_time>GetTick

c - 通过地址获取函数名

使用这段代码,我可以通过名称获取函数的地址:DWORDdwAddr=(DWORD)GetProcAddress(GetModuleHandleA("user32.dll"),"MessageBoxA");但是有可能做相反的过程吗?从函数地址找到函数名?假设MessageBoxA地址是0x1234abcd。我想要的是:char*func_name=this_is_what_i_want(0x1234abcd);printf("%s",func_name);//thiswillprint"MessageBoxA"操作系统:Windows 最佳答案

c - 'st_blksize' : is not a member of 'stat' on Windows

因为我想从Linux移植到Windows。我意识到Windows和LinuxAPI都有stat.h但有一些不同。问题是Windowsstat.h没有st_blksize变量,但Linux有。我真的不明白st_blksize也可以做什么。谁能帮我解决这个问题?如何在Windows上找到与st_blksize等效的内容? 最佳答案 对于Linux结构定义,请访问此处:http://pubs.opengroup.org/onlinepubs/7908799/xsh/sysstat.h.html主要摘录:st_size:文件大小(以字节为单

Windows 和 Linux 中二进制文件的 C 库校验和

我将CRC库用于校验和,对于文本文件,在Windows和Linux中结果相同,但对于二进制文件,结果不同。我在Windows中使用mingw编译我的c程序,校验和结果不同。有没有一种方法可以使用CRC库在Windows和Linux之间产生相同的校验和结果?添加代码:我将此代码用于校验和文件,是从一些网络谷歌搜索中找到的。(忘记保存链接)。crc32.c#include#include#include#include#defineCRC(crc,ch)(crc=(crc>>8)^crctabb[(crc^(ch))&0xff])staticconstuint32_tcrctabb[256

windows - 如何递归扩展环境变量?

假设如下:echo%MY_ENV_VAR%扩展为%USERPROFILE%\some\pathecho%USERPROFILE%扩展为C:\Users\MyUser我的目标是在以下路径创建一个空文件:C:\Users\MyUser\some\path\FOO.txt。我尝试了以下命令:typenul>%MY_ENV_VAR%\FOO.txt不幸的是,输出是一个错误,指出系统找不到指定的路径。我很确定这是因为shell没有递归扩展%MY_ENV_VAR%并且它试图找到以%USERPROFILE%开头的文字路径。我怎样才能最好地实现我的目标? 最佳答案

c - 我想打开新的 cmd 提示符并从 cmd 提示符插入参数

我尝试启动cmd以打开新的cmd提示符,但我无法在新的cmd中提供命令行参数..我试过以下system("startcmd")>>"system("C:\\Windows\\System32\\ipconfig");不工作system(startsystem("C:\\Windows\\System32\\ipconfig"));不工作 最佳答案 正如DipakDDesai所说,您可以简单地使用system("cmd/cstartC:\\Windows\\System32\\ipconfig");但是如果您在非控制台应用程序中执行此

c - C 中的 Visual Studio 错误,0xfefefefe 处的未处理异常

我正在学习如何在VisualStudio中编写C,这是我的代码,#includeintmain(){charme[20];printf("Whatisyourname?");scanf_s("%s",me);printf("darngladtomeetyou,%s!\n",me);return(0);}现在,在输入所有内容后,我会弹出一个错误消息“Project14.exe中0xFEFEFEFE处未处理的异常:0xC00001A5:已检测到无效的异常处理程序例程(参数:0x00000003)” 最佳答案 您使用的scanf_s()有